<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author JOSE
 */
class GenerarListadoBO {
    
    var $medicoDao;
    var $horarioDao;
    var $tipoTarjetaDao;
    var $className;

    public function __construct() {
        $this->className = 'GenerarListadoBO';
        LogUtil::info("class $this->className", "__construct");
        $this->medicoDao = DAOFactory::getMedicoDao();
        $this->horarioDao = DAOFactory::getHorarioDao();
        $this->tipoTarjetaDao = DAOFactory::getTipoTarjetaDao();
    }

    public function __destruct() {
        LogUtil::info("class $this->className", "__destruct");
    }

    public function retornarListado($tipoListado) {
       LogUtil::info("class $this->className", "retornarListado"); 
       $listaGeneral = array();
       try{           
           switch ($tipoListado) {
               case Constantes::$TIPO_LISTADO_MEDICOS:
                   $listaGeneral = $this->medicoDao->obtenerMedicos();
                   break;
               case Constantes::$TIPO_LISTADO_HORARIOS:
                   $listaGeneral = $this->horarioDao->obtenerHorarios();
                   break;
               case Constantes::$TIPO_LISTADO_TIPO_TARJETA:
                   $listaGeneral = $this->tipoTarjetaDao->obtenerTipoTarjetas();
                   break;   
               case Constantes::$TIPO_LISTADO_MEDICOS_ACTIVOS:
                   $listaGeneral = $this->medicoDao->obtenerMedicosActivos();
                   break;
               case Constantes::$TIPO_LISTADO_HORARIOS_ACTIVOS:
                   $listaGeneral = $this->horarioDao->obtenerHorariosActivos();
                   break;
               case Constantes::$TIPO_LISTADO_TIPO_TARJETA_ACTIVOS:
                   $listaGeneral = $this->tipoTarjetaDao->obtenerTipoTarjetasActivos();
                   break; 
               default:
                   break;
           }                   
       }catch(Exception $e){
           LogUtil::info("class $this->className", $e->getMessage());
           throw new Exception($e->getMessage(), $e->getCode());
       }
       return $listaGeneral;
    }

}
?>
